package com.jdd.modules.order.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jdd.common.util.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Description: 停车订单详情管理
 * @Author: jdd
 * @Date: 2021-03-01
 * @Version: V1.0
 */
@Data
@TableName("park_order_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "park_order_info对象", description = "停车订单详情管理")
public class ParkOrderInfo {

    /**
     * id
     */
    @TableId(type = IdType.ID_WORKER_STR)
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * 微信停车公众号openid
     */
    @Excel(name = "微信停车公众号openid", width = 15)
    @ApiModelProperty(value = "微信停车公众号openid")
    private String openId;
    /**
     * 昵称
     */
    @Excel(name = "昵称", width = 15)
    @ApiModelProperty(value = "昵称")
    private String nickName;
    /**
     * 车牌号
     */
    @Excel(name = "车牌号", width = 15)
    @ApiModelProperty(value = "车牌号")
    private String plateNo;
    /**
     * 优惠券id
     */
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    /**
     * 是否使用优惠券 1未使用 2使用
     */
    @ApiModelProperty(value = "是否使用优惠券 1未使用 2使用")
    private Integer couponUseFlag;
    /**
     * 设备序列号，设备唯一
     */
    @Excel(name = "设备序列号，设备唯一", width = 15)
    @ApiModelProperty(value = "设备序列号，设备唯一")
    private String serialNo;
    /**
     * 停车场名称
     */
    @Excel(name = "停车场名称", width = 15)
    @ApiModelProperty(value = "停车场名称")
    private String parkName;
    /**
     * 停车场编号
     */
    @Excel(name = "停车场编号", width = 15)
    @ApiModelProperty(value = "停车场编号")
    private String parkCode;
    /**
     * 停车场出口id
     */
    @Excel(name = "停车场出口id", width = 15)
    @ApiModelProperty(value = "停车场出口id")
    private Integer armCode;
    /**
     * 停车场出口名称
     */
    @Excel(name = "停车场出口名称", width = 15)
    @ApiModelProperty(value = "停车场出口名称")
    private String armName;
    /**设备ip地址*/
/*	@Excel(name = "设备ip地址", width = 15)
    @ApiModelProperty(value = "设备ip地址")
	private String ipAddr;*/
    /**
     * 停车记录id
     */
    @Excel(name = "停车记录id", width = 15)
    @ApiModelProperty(value = "停车记录id")
    private String parkLogId;
    /**
     * 车辆入场ID
     */
    @Excel(name = "车辆入场ID", width = 15)
    @ApiModelProperty(value = "车辆入场ID")
    private String carEnterId;
    /**
     * 入场时间
     */
    @Excel(name = "入场时间", width = 15)
    @ApiModelProperty(value = "入场时间")
    private String enterTime;
    /**
     * 出场时间
     */
    @Excel(name = "出场时间", width = 15)
    @ApiModelProperty(value = "出场时间")
    private String outTime;
    /**
     * 总费用
     */
    @Excel(name = "总费用", width = 15)
    @ApiModelProperty(value = "总费用")
    private String chargeTotalFee;
    /**
     * 原停车费用； 单位分
     */
    @Excel(name = "原停车费用； 单位分", width = 15)
    @ApiModelProperty(value = "原停车费用； 单位分")
    private String chargeDue;
    /**
     * 当前的停车费用；单位分
     */
    @Excel(name = "当前的停车费用；单位分", width = 15)
    @ApiModelProperty(value = "当前的停车费用；单位分")
    private String chargeUnpaid;
    /**
     * 已支付费用；单位分
     */
    @Excel(name = "已支付费用；单位分", width = 15)
    @ApiModelProperty(value = "已支付费用；单位分")
    private String chargePaid;
    /**
     * 停车时长: 单位秒
     */
    @Excel(name = "停车时长: 单位分", width = 15)
    @ApiModelProperty(value = "停车时长: 单位分")
    private Integer chargeDuration;
    /**
     * 预付费用
     */
    @Excel(name = "预付费用", width = 15)
    @ApiModelProperty(value = "预付费用")
    private String chargePrepaid;
    /**
     * 订单状态描述
     */
    @Excel(name = "订单状态描述", width = 15)
    @ApiModelProperty(value = "订单状态描述")
    private String orderStatusDesc;
    /**
     * 订单状态：1未支付，2支付成功，3支付失败
     */
    @Excel(name = "订单状态：1未支付，2支付成功，3支付失败", width = 15)
    @ApiModelProperty(value = "订单状态：1未支付，2支付成功，3支付失败")
    private String orderStatus;
    /**
     * 版本号
     */
    @Excel(name = "版本号", width = 15)
    @ApiModelProperty(value = "版本号")
    private Integer version;
    /**
     * 订单总金额，单位：分
     */
    @Excel(name = "订单总金额，单位：分", width = 15)
    @ApiModelProperty(value = "订单总金额，单位：分")
    private String totalAmt;
    /**
     * 积分抵扣金额，单位：分
     */
    @Excel(name = "积分抵扣金额，单位：分", width = 15)
    @ApiModelProperty(value = "积分抵扣金额，单位：分")
    private String pointAmt;
    /**
     * 电子券抵扣金额，单位：分
     */
    @Excel(name = "电子券抵扣金额，单位：分", width = 15)
    @ApiModelProperty(value = "电子券抵扣金额，单位：分")
    private String ecouponAmt;
    /**
     * 优惠立减金额，单位：分
     */
    @Excel(name = "优惠立减金额，单位：分", width = 15)
    @ApiModelProperty(value = "优惠立减金额，单位：分")
    private String merDiscAmt;
    /**
     * 优惠券金额，单位：分
     */
    @Excel(name = "优惠券金额，单位：分", width = 15)
    @ApiModelProperty(value = "优惠券金额，单位：分")
    private String couponAmt;
    /**
     * 商户系统订单号，原样返回
     */
    @Excel(name = "商户系统订单号，原样返回", width = 15)
    @ApiModelProperty(value = "商户系统订单号，原样返回")
    private String outTradeNo;
    /**
     * 行内系统订单号
     */
    @Excel(name = "行内系统订单号", width = 15)
    @ApiModelProperty(value = "行内系统订单号")
    private String orderId;
    /**
     * 支付完成时间，格式为： YYYYMMDDHHmmss
     */
    @Excel(name = "支付完成时间，格式为： YYYYMMDDHHmmss", width = 15)
    @ApiModelProperty(value = "支付完成时间，格式为： YYYYMMDDHHmmss")
    private String payTime;
    /**
     * 总优惠金额，其值=优惠立减金额（商户 部分）+银行补贴金额，单位：分
     */
    @Excel(name = "总优惠金额，其值=优惠立减金额（商户 部分）+银行补贴金额，单位：分", width = 15)
    @ApiModelProperty(value = "总优惠金额，其值=优惠立减金额（商户 部分）+银行补贴金额，单位：分")
    private String totalDiscAmt;
    /**
     * 商户线下档案编号
     */
    @Excel(name = "商户线下档案编号", width = 15)
    @ApiModelProperty(value = "商户线下档案编号")
    private String merId;
    /**
     * 商户上送的附加数据，原样返回
     */
    @Excel(name = "商户上送的附加数据，原样返回", width = 15)
    @ApiModelProperty(value = "商户上送的附加数据，原样返回")
    private String attach;
    /**
     * 用户唯一标识
     */
    @Excel(name = "用户唯一标识", width = 15)
    @ApiModelProperty(value = "用户唯一标识")
    private String custId;
    /**
     * 屏蔽后的银行卡号
     */
    @Excel(name = "屏蔽后的银行卡号", width = 15)
    @ApiModelProperty(value = "屏蔽后的银行卡号")
    private String cardNo;
    /**
     * 银行补贴金额，单位：分
     */
    @Excel(name = "银行补贴金额，单位：分", width = 15)
    @ApiModelProperty(value = "银行补贴金额，单位：分")
    private String bankDiscAmt;
    /**
     * 用户实际扣减金额，单位：分
     */
    @Excel(name = "用户实际扣减金额，单位：分", width = 15)
    @ApiModelProperty(value = "用户实际扣减金额，单位：分")
    private String paymentAmt;
    /**
     * 支付类型：1微信，2支付宝,3无感支付，4线下付款
     */
    @Excel(name = "支付类型：1微信，2支付宝,3无感支付，4,全免劵，5储值车，6线下收费", width = 15)
    @ApiModelProperty(value = "支付类型：1微信，2支付宝,3无感支付，4,全免劵，5储值车，6线下收费")
    private String payType;
    /**
     * 类型：1、是聚合支付，2、无感支付
     */
    @Excel(name = "类型：1、是聚合支付，2、无感支付", width = 15)
    @ApiModelProperty(value = "类型：1、是聚合支付，2、无感支付")
    private String sourceType;
    /**
     * 发票状态：1，已开票，2未申请，3，开票失败，4，红冲，5.开票申请中,6.红冲申请中
     */
    @Excel(name = "发票状态：1，已开票，2未申请，3，开票失败，4，红冲，5.开票申请中,6.红冲申请中", width = 15)
    @ApiModelProperty(value = "发票状态：1，已开票，2未申请，3，开票失败，4，红冲，5.开票申请中,6.红冲申请中")
    private String billStatus;
    /**
     * 1为有牌车，2为无牌车,默认有牌车
     */
    @Excel(name = "1为有牌车，2为无牌车,默认有牌车", width = 15)
    @ApiModelProperty(value = "1为有牌车，2为无牌车,默认有牌车")
    private String carType;
    /**
     * 发票请求流水号
     */
    @Excel(name = "发票请求流水号", width = 15)
    @ApiModelProperty(value = "发票请求流水号")
    private String invoiceBill;
    /**
     * 发票红冲类别（0，正常 ， 1，红冲）
     */
    @Excel(name = "发票红冲类别（0，正常 ， 1，红冲）", width = 15)
    @ApiModelProperty(value = "发票红冲类别（0，正常 ， 1，红冲）")
    private String redType;
    /**
     * 红冲发票请求流水号
     */
    @Excel(name = "红冲发票请求流水号", width = 15)
    @ApiModelProperty(value = "红冲发票请求流水号")
    private String redInvoiceBill;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改时间
     */
    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 是否已经同步到云端
     */
    @Excel(name = "是否已同步", width = 20)
    @ApiModelProperty(value = "是否已同步到云端(1已同步，0未同步)")
    private String synchronousStatus;
    /**
     * 岗亭人员账户
     */
    @Excel(name = "岗亭人员账户", width = 15)
    @ApiModelProperty(value = "岗亭人员账户")
    private String sysUserName;
    /**
     * 工作站字段
     */
    @Excel(name = "工作站字段", width = 15)
    @ApiModelProperty(value = "工作站字段")
    private String workName;
    /**
     * 订单总收益
     */
    @TableField(exist = false)
    private Double orderSum;
    /**
     * 停车场入口名称
     */
    @ApiModelProperty(value = "停车场入口名称")
    @TableField(exist = false)
    private String enterArmName;
    /**
     * 出场类型 1 : 正常出场 2：手动出场 3：补录场内
     */
    @ApiModelProperty(value = "出场类型 1 : 正常出场 2：手动出场 3：补录场内")
    @TableField(exist = false)
    private Integer outerType;

    /**
     * 车辆性质
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "车辆性质(0:临时车,1:月租车,2储值车，3军警车）")
    private String carNature;
    /**
     * 车辆类型名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "车辆类型名称")
    private String carTypeName;
}
